1. Field of the Invention
The present invention is directed to automated workflow systems and more particularly, to an object-oriented framework used in developing and implementing consistent workflow systems in a single department or throughout an enterprise, such as a corporation or a government agency.
2. Description of the Related Art
Computer programs have been written for businesses since the 1950""s and 1960""s using first machine code, then assembly languages, COBOL, and third, fourth and fifth generation languages. Most work in offices uses at least one and often several computer programs, including languages and software tools that are used in many different industries, such as word processing, spreadsheets, databases, etc., to industry-specific or line-of-business programs, many of which are used to manage the work performed in a specific industry or within certain parts of an industry. In the 1980""s, imaging began to be used to support line-of-business programs, reducing the amount of paper required to perform the business functions by storing the paper image in the computer as part of the business program. In the late 1980""s, companies such as FILENET, IBM, WANG, etc., developed workflow products of various types. At first, workflow processing products were added to imaging systems in an effort further the xe2x80x9cpaperless officexe2x80x9d. Workflow was attached to image-enabled systems because the presence of the electronic image (as opposed to the paper document) allowed the workflow system to xe2x80x9cpushxe2x80x9d work to users in addition to using xe2x80x9cpullxe2x80x9d technology. With an electronic image, the image could be presented to the user when the work was pushed to them; if paper was required, pushing work to an individual required that the individual then physically retrieve the paper when the work item was pushed to them. Workflow systems developed along several dimensions: xe2x80x9ccollaborative workflowxe2x80x9d was developed to support ad hoc workflow requirementsxe2x80x94where the knowledge worker developed a workflow based on the characteristics of each business case; xe2x80x9cembedded workflowxe2x80x9d was developed to support simple workflow requirements that are a required part of business systems; and xe2x80x9cmission criticalxe2x80x9d workflow was developed to support high volume, predictive workflows.
Management of xe2x80x9cmission criticalxe2x80x9d work in an organization requires significantly more than the features provided by embedded and collaborative workflow systems. A type of workflow processing system termed xe2x80x9cutilityxe2x80x9d systems combine complex process rules stored in a database, existing system interfaces, and user interfaces that control what is available to a worker at a computer workstation or terminal, and may monitor the work being performed.
Three types of utility workflow processing products have evolved. The first products that were commercially available were development languages developed to support workflow. Instead of using general development languages (e.g., COBOL, BASIC, FORTRAN), these workflow languages were developed to facilitate the programming of work processes, much as specialized development languages were developed for such functions as artificial intelligence (e.g., LISP) and process manufacturing. Examples of these xe2x80x9cgeneral purposexe2x80x9d workflow languages include FILENET""S VISUAL WORKFLO, IBM""s FLOWMARK, and STAFFWARE""S STAFFWARE. Some of these products support a wide range of capabilities and functions for the enterprise, some are focused on a smaller set of functions and smaller user implementations.
The other two types of utility workflow that have evolved include workflow that is specific to a line-of-business or application and workflow that has been added to a suite of business applications. Examples of the former include templates for various financial applications from PEGASYSTEM, mutual fund applications from DST SYSTEMS, Inc, and BANCTEC""S PLEXUS-applications for the financial services industry. In these applications, business specific workflow rules and processes are provided as a full or partial solution (often referred to, respectively, as a package or a template). Some of these solutions are built using general purpose workflow development languages, some have been built using custom workflow languages. The workflow supported by this class of systems is typically hardcoded (necessitating coding changes to programs written in general purpose programming or workflow languages when changes are required) and supports only the specific workflow functionality required by the application. However, even if the workflows are offered for a range of business functions, they do not utilize the same process definitions and code; at best they reuse the code, at worst the code is unique for the line of business.
Examples of the third type of workflow solution include financial and enterprise resource planning (ERP) suites such as those from ORACLE, BMN, and SYSTEMS, APPLICATIONS, AND PRODUCTS in Data Processing (SAP). These application suites often share data and functions across the lines of business, but only support rudimentary workflow functions and should not be characterized as mission critical workflow. They are included in this category only because they are marketed as mission critical solutions.
The state of the art is that there are powerful workflow toolsets that require specific products to support their use and enable a user to create a customized workflow processing system with significant effort. There are also many products designed for specific applications within an industry that can be customized with varying amounts of effort. Examples in the claims processing area include QUICK START for Data Entry from AMERICAN MANAGEMENT SYSTEMS and similar products from IPD, IMAGE MATRIX, and others.
However, there are no scalable products designed to provide standardized workflow processes in a department or throughout an enterprise, that are applicable across industries; provide the coding efficiency of object-oriented design; and utilize open standards to work with existing third party tools and languages, such as databases, graphical user interface languages, etc., currently in use or desired to be used by the organization implementing the workflow processing system.
It is an object of the present invention to provide a framework for developing a workflow processing system using object-oriented design principals to minimize coding effort and maintenance requirements in implementation in individual departments and throughout an enterprise.
It is another object of the present invention to provide a workflow processing framework utilizing existing third party tools and languages through adherence to standards and an open architecture.
It is a further object of the present invention to provide a workflow processing framework that enables users to define logical queues through dynamic work divisions without requiring coding changes to programs written in programming languages.
It is a yet further object of the present invention to provide a workflow processing framework that can operate on folders containing any type of data accessible in electronic form and prefetch the data without requiring knowledge of how to access and utilize the specific type of data by the user defining what is included in a folder.
The above objects can be attained by a workflow processing framework, scalable for use by a single department to an entire enterprise, including a set of software objects, each unique throughout the enterprise, to support corresponding business functions; a database, accessed by a subset of said software objects, defining work taxonomy and work steps for workflow processing; and a workflow engine utilizing said software objects and the work taxonomy to perform the workflow processing. The workflow processing framework can be used to develop a workflow processing system by entering data into the database to define work types and work steps for workflow processing, creating a graphical user interface (GUI) to use the set of objects, and defining the workflow in the workflow engine.